#pragma once

#include <gofcl_gpio_pins.h>

// BOP寄存器的定义
typedef struct {
	gpio_pins_s BOP;
	gpio_pins_s CR;
} gpio_bop_s;

_Static_assert(sizeof(gpio_bop_s) == 4, "Struct gpio_bop_s defined error!");

static void gpio_wreg_bop(gpio_qe gpio_q, u32_s bop) {
	gpio_wreg(gpio_q, GPIO_BOP_R, bop);
}

static inline void gpio_wreg_bop_s(gpio_qe gpio_q, gpio_bop_s bop) {
	union {
		gpio_bop_s b;
		u32_s u;
	} bu = {
		.b = bop,
	};
	gpio_wreg_bop(gpio_q, bu.u);
}
